package com.webservice.service.impl;



import javax.annotation.Resource;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import com.webservice.dao.Pub;
import com.webservice.service.IPubWebService;
import com.webservice.utils.BillTypeUtil;
import com.webservice.utils.XmlCheck;

/**
 * <b> 外部供应商WEBSERVICE公共入口 </b>
 * <p> 功能:提供对外系统的WEBSERVICE的数据上传、下载功能。 </p>
 * @作者 Andy
 * @创建日期 2013-12-4
 * @项目名称 b2b
 * @JAVA路径 com.tools.webservice.IPubWebService
 */
@WebService(endpointInterface = "com.webservice.service.IPubWebService")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class PubWebServiceImpl  implements IPubWebService {
	@Resource
	private WebServiceContext wsContext;


	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 获取客户端ip
	 * 
	 * @return
	 */
	private String getClientIp() {
		MessageContext mc = (MessageContext) wsContext.getMessageContext();
		HttpServletRequest request = (HttpServletRequest) (mc.get(MessageContext.SERVLET_REQUEST));
		String remortAddress = request.getRemoteAddr();
		return remortAddress;
	}

	/***
	 * 
	 * <b> 功能 : 共用业务数据上传接口，提供外系统到b2b的数据上传功能 </b>
	 * 
	 * @param xml
	 *            数据
	 * @param action_type
	 *            业务类型
	 * @作者 Andy
	 * @创建日期 2013-12-4
	 */

	public String upLoad(String xml, String action_type) {
		try {
			String ip = getClientIp();
			if (null == ip)return Pub.returnInfo(null,-1,"失败：无法获取ip地址",null); 
			return new WebServiceHandle().upLoad(xml, action_type, ip);
		} catch (Exception e) {
			e.printStackTrace();
			return Pub.returnXml(e.getMessage());
		}
	}

	/***
	 * 
	 * <b> 功能 : 共用业务数据上传接口，提供外系统到b2b的数据下载功能 </b>
	 * 
	 * @param xml
	 *            数据
	 * @param action_type
	 *            业务类型
	 * @作者 Andy
	 * @创建日期 2013-12-4
	 */
	@Override
	public String downLoad(String xml, String action_type) {
		try {
			String ip = getClientIp();
			if (null == ip)return  Pub.returnInfo(null,-1,"失败：无法获取ip地址",null);
			return new WebServiceHandle().downLoad(xml, action_type, ip);
		} catch (Exception e) {
			e.printStackTrace();
			return Pub.returnXml(e.getMessage());
			
		}
	}

}
